package com.junye.googleplay.UIUtils;

import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Handler;
import android.view.View;

import com.junye.googleplay.global.GooglePlayApplication;

/**
 * Created by junye on 2016/6/15.
 */
public class UIUtils {


    public static Context getContext() {
        return GooglePlayApplication.getContext();
    }

    public static Handler getHandler() {
        return GooglePlayApplication.getHandler();
    }

    public static int getMainThreadId() {
        return GooglePlayApplication.getMainThreadId();
    }

    // ///////////////////获取字符串//////////////////////
    public static String getString(int id) {
        return getContext().getResources().getString(id);
    }

    // ///////////////////获取字符串数组//////////////////////
    public static String[] getStringArray(int id) {
        return getContext().getResources().getStringArray(id);
    }


    // ///////////////////获取图片//////////////////////

    public static Drawable getDrawable(int id) {
        return getContext().getResources().getDrawable(id);
    }


    // ///////////////////获取颜色//////////////////////
    public static int getColor(int id) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            return getContext().getResources().getColor(id, null);
        } else {
            return getContext().getResources().getColor(id);
        }
    }

    // ///////////////////获取颜色状态//////////////////////
    public static ColorStateList getColorStateList(int id){
        return getContext().getResources().getColorStateList(id);
    }

    // ///////////////////获取尺寸//////////////////////
    public static int getDimen(int id) {
        return getContext().getResources().getDimensionPixelSize(id);
    }


    // ///////////////////dip和px转换//////////////////////
    public static int dip2px(float dip) {
        float density = getContext().getResources().getDisplayMetrics().density;
        return (int) (dip * density + 0.5f);
    }

    public static float px2dip(int px) {
        float density = getContext().getResources().getDisplayMetrics().density;
        return px / density;
    }


    // ///////////////////加载布局文件//////////////////////
    public static View getView(int id) {
        return View.inflate(getContext(), id, null);
    }


    // ///////////////////判断是否在主线程运行//////////////////////
    public static boolean isRunOnUiThread() {
        int myTid = android.os.Process.myTid();
        return myTid == getMainThreadId();
    }

    // ///////////////////运行在主线程运行//////////////////////
    public static void runOnUiThread(Runnable r) {
        if (isRunOnUiThread()) {
            r.run();
        } else {
            getHandler().post(r);
        }
    }
}
